
/*
 *
 * All Rights Reserved.
 */
package com.model.demo.designmodel.proxy.dynamicproxy.jdkproxy;

import sun.misc.ProxyGenerator;

import java.io.FileOutputStream;

/**
 * MatchmakerProxyTest  JDK代理原理：动态生成字节码
 *
 * @author Liao Dongshan, 2019年06月04日
 *
 */
public class MatchmakerProxyTest {
    public static void main(String[] args) {
        //在运行中在内存中生成一个新的类
        Person instance = (Person)new Matchmaker().getInstance(new Girl());
//        instance是一个全新的类，既不是媒婆的，也不是girl的 //而是$Proxy0
        instance.findLove();

        try {
            byte[] bytes= ProxyGenerator.generateProxyClass("$Proxy0",new Class[]{Person.class});
            FileOutputStream os=new FileOutputStream("D://$Proxy0.class");
            os.write(bytes);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
